package estate;

import java.util.HashMap;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Wlodek
 */
public class DekoratorGruntowy extends Dekorator {

    private String typ_gruntu;
    private String klasa_gruntu;
    private int numer_dzialki;
    private int uksztaltowanie_terenu;
    private int ksztalt_dzialki;

    public String getTypGruntu() {
        return typ_gruntu;
    }

    public String getKlasaGruntu() {
        return klasa_gruntu;
    }

    public int getNumerDzialki() {
        return numer_dzialki;
    }

    public int getUksztaltowanieTerenu() {
        return uksztaltowanie_terenu;
    }

    public int getKsztaltDzialki() {
        return ksztalt_dzialki;
    }

    @Override
    public void dekoruj(HashMap<String, Object> hm) {
        System.out.println("dDG");
        this.typ_gruntu = (String) hm.get("typ_gruntu");
        this.klasa_gruntu = (String) hm.get("klasa_gruntu");
        this.numer_dzialki = (Integer) hm.get("numer_dzialki");
        this.ksztalt_dzialki = (Integer) hm.get("ksztalt_dzialki");
        this.uksztaltowanie_terenu = (Integer) hm.get("uksztaltowanie_terenu");
        this.element.dekoruj(hm);
    }

    public DekoratorGruntowy(Estate e) {
        super(e);
    }

    @Override
    public boolean equals(Object e) {
         System.out.println("eDG");
        DekoratorGruntowy pe = (DekoratorGruntowy) e;
        if ( /*    private String typ_gruntu;
                private String klasa_gruntu;
                private int numer_dzialki;
                private int uksztaltowanie_terenu;
                private int ksztalt_dzialki;*/this.typ_gruntu.equals(pe.getTypGruntu()) &&
                this.klasa_gruntu.equals(pe.getKlasaGruntu()) &&
                this.numer_dzialki == pe.getNumerDzialki() &&
                this.uksztaltowanie_terenu == pe.uksztaltowanie_terenu &&
                this.ksztalt_dzialki == pe.ksztalt_dzialki &&
                ((Oferta) this.element).equals(pe.element)) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 71 * hash + (this.typ_gruntu != null ? this.typ_gruntu.hashCode() : 0);
        hash = 71 * hash + (this.klasa_gruntu != null ? this.klasa_gruntu.hashCode() : 0);
        hash = 71 * hash + this.numer_dzialki;
        hash = 71 * hash + this.uksztaltowanie_terenu;
        hash = 71 * hash + this.ksztalt_dzialki;
        return hash;
    }

    @Override
    public int compareTo(Estate e) {
        System.out.println("cDG");
        return 0;
    }

    @Override
    public String toString() {
        String pom = element.toString();
        pom += "1: " + typ_gruntu + " 2: " + klasa_gruntu + " 3: " + numer_dzialki +
                " 4: " + uksztaltowanie_terenu + " 5: " + ksztalt_dzialki;
        return pom;
    }

    @Override
    public void setUser(User user) {
        element.setUser(user);
    }
}
